const net = require('net')
const fs = require('fs')

let fileStream = fs.createWriteStream('./socket.txt')
let server = net.createServer()

server.on('connection', (socket) => {

  // 接受客户端的数据, 默认是 Buffer
  socket.setEncoding('utf8') // 变成字符

  socket.on('data', (data) => {

    // 如果上面没有指定编码， data是Buffer, 也可以使用 data.toString() 变成字符串类型
    console.log(data)
    console.log('已接收的字节数--》'+ socket.bytesRead)

    // 将接收的数据写入文件
    socket.pipe(fileStream, {end: false})
  })

  socket.on('end', () => {
    console.log('客户端断开连接')
    fileStream.end(`客户端断开连接, 给文本追加一行内容`)
  })
})

server.listen(8080, () => {
  console.log('服务器启动, 8080端口')
})

// 测试上面的 data事件

/**
 * 控制台输入
 * telnet 127.0.0.1 8080
 *
 * 然后就进入交互模式， 输入的内容回车，就会被 data 事件监听到
 */